//designpatterns.iterator.AbstractIterator.java
package org.patterns.behavior.iterator;

/**
 * 抽象迭代器接口，定义遍历元素所需的方法
 */
public interface AbstractIterator {
    /**
     * 将迭代器指针移动到下一个元素
     * 无参数
     * 无返回值
     */
    public void next(); //移至下一个元素

    /**
     * 判断当前元素是否是最后一个元素
     * 无参数
     * @return {boolean} 如果是最后一个元素返回true，否则返回false
     */
    public boolean isLast(); //判断是否为最后一个元素

    /**
     * 将迭代器指针移动到上一个元素
     * 无参数
     * 无返回值
     */
    public void previous(); //移至上一个元素

    /**
     * 判断当前元素是否是第一个元素
     * 无参数
     * @return {boolean} 如果是第一个元素返回true，否则返回false
     */
    public boolean isFirst(); //判断是否为第一个元素

    /**
     * 获取下一个元素但不移动指针
     * 无参数
     * @return {Object} 下一个元素的实例对象
     */
    public Object getNextItem(); //获取下一个元素

    /**
     * 获取上一个元素但不移动指针
     * 无参数
     * @return {Object} 上一个元素的实例对象
     */
    public Object getPreviousItem(); //获取上一个元素
}
